package aishua.com.mytestapplist.datastructure;

/**
 * Created by aishua on 2018/4/19.
 *
 *
 * 线性表抽象数据类型
 * Created by aishua on 2018/4/19.
 */

public interface LList<T> {

    /*
    * 判断线性表是否为空，空返回true，反之false
    * */
    boolean isEmpty();
    /*
    *返回线性表长度
     */
    int length();
    /*
    * 根据下标获取元素
    * */
    T getElem(int i);

    /*
    *设置第i个元素的值
    **/
    void set(int i,T t);

    /*
    * 在第i个位置插入元素x
    * */
    void insert(int i,T x);

    /*
    * 在线性表最后插入元素x
    * */
    void append(T x);
    /*
     删除指定下表元素，并返回对象
     */
    T remove(int i);
    /*
    删除所有元素
     */

    void removeAll();

    /*
    * 查找首次出现关键字为key的元素
    * */
    T search(T key);
}
